In anticipation of substantial future increases in demand for communications facilities (voice, computer data, video, etc.), new systems are being designed with much greater network flexibility, higher speeds and higher traffic capacity than systems presently in use. One particular system, based on optical communications technology, is the Synchronous Optical Network (SONET) and the equivalent CCITT Synchronous Digital Hierarchy (SDH). These systems are intended ultimately to replace the existing so-called plesiochronous (nearly synchronous) systems.
SONET systems incorporate the concept of splitting a stream of data to be transported from a single source (which may be a plesiochronous system) into blocks, and transporting each block (called `payload`) within one or more successive `frames` which also contain control information (called `overhead`). This control information enables the system to detect errors and to identify individual payload data streams within an overall stream of frames which may contain multiplexed data from many sources and intended for many destinations. At the most basic level (SONET STS-1), a frame comprises 810 8-bit bytes, 27 of which are assigned to overhead and 783 of which are available for payload data; during transmission of a frame, overhead and payload data alternate, in a pattern which comprises 3 bytes of overhead followed by 87 bytes of data and which occurs a total of 9 times. 8000 such frames are transmitted per second, giving an overall bit rate of 51.84 MHz. Higher level signals may also be produced. For example, three STS-1 signals may be interleaved to create an STS-3 signal, with a bit rate of 155.52 MHz; during transmission of an STS-3 frame the overhead and the payload data alternate in a pattern comprising 9 bytes (72 bits) of overhead (three from each component STS-1 signal) followed by 261 bytes (2088 bits) of data. Alternatively, a so-called STS-3c concatenated signal may be created containing a single signal payload with three times the capacity of an STS-1 signal (2349 bytes), 81 bytes of overhead and a bit rate of 155.52 MHz.
The size of each block of payload data and the payload capacity of a SONET frame are the same, but the SONET system does not require the start of a block (the `payload envelope`) to be coincident with the start of the payload portion of a frame. In order to facilitate efficient multiplexing and transfer of signals between different SONET systems, the payload envelope may start anywhere within the payload portion of the frame, and carry over into the following frame. For each SONET signal the overhead information includes a value (the `payload pointer`) which identifies which byte of the payload portion comprises the first byte of the payload envelope starting in that frame.
Although the component equipments of a SONET system are synchronized in operation, it is essential for the system to be able to accommodate slight perturbations in clock signal frequency and phase. Such perturbations can occur, for example, where a signal is transferred from one SONET system to another (e.g. a connection at national boundaries or between systems belonging to different operators), or if a master system clock signal source fails and individual system components have to rely on local stand-by clock signal sources.
The effect of such perturbations is to cause either a surplus or a deficiency of data to accumulate. Thus, if the clock frequency of a SONET system upon which data are arriving at a connection is offset fractionally below the frequency of the system upon which data are leaving the connection, a cumulative deficiency of a complete byte will periodically arise. When this occurs, an `empty` byte is included among the payload data bytes in the frame being assembled at that time (at a predefined position within the payload portion of the frame); thus the payload envelope including that data uses 784 byte positions to transmit 783 actual bytes, and the deficiency is compensated. The payload pointer for the following, normal payload envelope is incremented by one relative to that for the `extended` payload envelope, to reflect the fact that the first byte of the following envelope must occur one byte later relative to the start of its frame than did the first byte of the `extended` payload envelope.
Likewise, if the incoming clock frequency is offset fractionally above that of the outgoing clock, a surplus of one byte will periodically accumulate. In this case one byte of data for the frame being assembled is placed in a predefined, normally spare byte location in the overhead, rather than in the payload envelope as usual; thus that frame transmits the required 783 data bytes using only 782 byte positions within the payload envelope itself, and the surplus is absorbed. The payload pointer for the following, normal payload envelope is decremented by one relative to that for the `condensed` payload envelope, to reflect the fact that the first byte of the following envelope now occurs one byte earlier relative to the start of its frame than did the first byte of the `condensed` payload envelope.
In the case of an STS-3c concatenated signal there is a single payload pointer and changes are made in steps of three bytes; thus an `extended` STS-3c payload envelope uses 2352 byte positions to transmit 2349 actual bytes, and a `condensed` payload envelope transmits 2349 bytes using only 2346 byte positions within the payload envelope itself.
During normal operation a pair of SONET systems will be highly synchronized, and frequency variation will appear mainly as long-term (e.g. diurnal) wander; however, during fault hold-over conditions a small frequency offset may appear, possibly with short-term fluctuations superimposed. Resulting changes in payload pointer values will arise at intervals of the order of 10's to 100's of milliseconds or longer (e.g. every 300 to 3000 frames or more). Under fault hold-over conditions there may be a generally steady sequence of such payload pointer changes. The net result is that the payload envelopes appear to `move` progressively relative to the fixed sequence of SONET frames.
In testing a SONET system, it is important to be able to confirm that the system will correctly regenerate the original input data stream without unacceptable distortion caused by timing discontinuities introduced by such payload pointer changes. In the case of a test-set for generating a simulated SONET traffic stream, it is therefore necessary to be able to generate SONET frames in which, in the worst case, the payload pointer values progressively change to simulate frequency-offset induced `movement` of the payload envelopes relative to the SONET frames, and in which occasional perturbations in the form of additional changes in payload pointer values are superimposed in order to simulate the effects of frequency disturbances such as jitter. Thus in one specified test involving measurements over a period nominally 30 seconds in duration, pointer changes with a spacing of between 36 ms and 10 s are required (corresponding to a total of between 830 and 3 changes) to simulate frequency offset, but perturbed with either one additional pointer change superimposed or one normal change suppressed. In other circumstances a signal may be required with a generally regular sequence of pointer changes, but with intermittent bursts of several additional or suppressed changes.
The synthesis of such a test signal presents a problem: the number of pointer changes and more particularly the times at which they become necessary are dependent upon the offset between the payload envelope frequency and the SONET frame frequency. Arbitrarily triggering pointer changes every 36 ms, for example, would not suffice, since the changes would not necessarily be synchronized with the frame sequence and might not accurately reflect the cumulative offset between the frame sequence and the payload envelope sequence, thereby leading to a net excess or deficiency of data.
In addition, the requirement to superimpose or suppress one or more pointer changes during each measurement period introduces an irregularity into the sequence of pointer changes, but the specified period between pointer changes must be maintained apart from this exception. Simply increasing or decreasing the number of bytes to be transmitted would not suffice, since that would result in pointer changes every 1/(n+1) or 1/(n-1) seconds (for one change more or one change fewer) instead of the desired spacing of 1/n seconds.
It is required therefore, in general terms, to produce an irregular signal (in this case, including events or pulses indicating that pointer changes are required) with the property that the mean frequency of occurrence of events over some predetermined time interval (in this case, the measurement period) is in a predetermined exact integer ratio to the frequency difference between two other signals (in this case, the frame sequence and the payload envelope sequence), and including events which occur at another predetermined frequency (in this case, the unperturbed rate of pointer changes).